#ifndef _AMERICO_PLANE_3D_H_
#define _AMERICO_PLANE_3D_H_

#include "../Vector.h"
#include "../Matrix.h"
#include "../Intersection.h"

class Plane3D : public Intersection::Plane
{
public:
	Plane3D();
	Plane3D(const Vector3<float> &aFirstPoint, const Vector3<float> &aSecondPoint, const Vector3<float> &aThirdPoint);

	Plane3D &Init(const Vector3<float> &aFirstPoint, const Vector3<float> &aSecondPoint, const Vector3<float> &aThirdPoint);
	Plane3D &Init(const Vector3<float> &aPoint,const Vector3<float> &aNormal);

	Plane3D &Calculate();

	bool Inside(const Plane3D &aPlane) const;
	bool Inside(const Vector3f &aPosition) const;

	Vector3f point1;
	Vector3f point2;
	Vector3f point3;
};

#endif